package com.yonyou.pmclouds.outter.tenant;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yonyou.iuap.tenant.sdk.TenantCenter;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;


/**
 * @Author chulf
 * @Date 2020/4/13
 * @Description
 **/

@Component
public class TenantInfoServerQuery {


    /**
     *
     * @param userId
     * @param tenantId
     * @return 判断用户是否是该租户下管理员
     */
    public boolean isManager(String userId, String tenantId) {

        String userManageTenants = TenantCenter.getUserManageTenants(userId);

        JSONObject jsonObject = JSON.parseObject(userManageTenants);

        JSONArray tenants = jsonObject.getJSONArray("tenants");
        if (tenants == null || tenants.isEmpty()) return false;

        for (Object tenant : tenants) {
            JSONObject realTenant = (JSONObject) tenant;
            String tempTenantId = realTenant.getString("tenantId");
            if (tenantId.equalsIgnoreCase(tempTenantId)) {

                return true;
            }
        }
        return false;
    }

    /**
     *
     * @param userId
     * @return 返回所有管理的租户id
     */
    public List<String> getManagerTenant(String userId){

        ArrayList<String> tenantList = new ArrayList<>();
        String userManageTenants = TenantCenter.getUserManageTenants(userId);

        JSONObject jsonObject = JSON.parseObject(userManageTenants);

        JSONArray tenants = jsonObject.getJSONArray("tenants");
        if (tenants == null || tenants.isEmpty()) return tenantList;

        for (Object tenant : tenants) {
            JSONObject realTenant = (JSONObject) tenant;
            String tempTenantId = realTenant.getString("tenantId");
            tenantList.add(tempTenantId);
        }

        return tenantList;
    }
}
